﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PMSGSC.DAL
{
    class StockUnit_DAL:BaseDAL
    {
                // Lấy tất cả StockUnit
        public static List<StockUnit> GetAll()
        {
            DB.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, DB.StockUnits);
            return DB.StockUnits.ToList();
        }
        // Lấy StockUnit theo Id
        public static StockUnit GetDataById(int id)
        {
            return DB.StockUnits.Where(s => s.StockUnit_ID == id).FirstOrDefault();
        }
        //Thêm một StockUnit
        public static bool Insert(StockUnit StockUnit)
        {
            try
            {
                DB.StockUnits.InsertOnSubmit(StockUnit);
                DB.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }

        }
        // Xóa một StockUnit
        public static bool Delete(StockUnit StockUnit)
        {
            try
            {
                DB.StockUnits.DeleteOnSubmit(StockUnit);
                DB.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }

        }
        // Cập nhật StockUnit
        public static bool Update(StockUnit StockUnit)
        {
            try
            {
                StockUnit objStockUnit = GetDataById(StockUnit.StockUnit_ID);
                objStockUnit.StockUnitName = StockUnit.StockUnitName;
                DB.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }

        }
        // Kiểm tra xem StockUnit có tồn tại ở bảng khác không (kiểm tra ràng buộc)
        public static bool IsBind(int id)
        {
            Equipment objEquipment = null;
            objEquipment = DB.StockUnits.Where(e => e.StockUnit_ID == id).FirstOrDefault();
            return objEquipment != null ? true : false;
        }
        // Kiểm tra xem StockUnit Name có tồn tại chưa ?
        public static bool IsExits(StockUnit StockUnit)
        {
            StockUnit objStockUnit = null;
            objStockUnit = DB.StockUnit.Where(m => (m.NameStockUnit == StockUnit.NameStockUnit) && (m.StockUnit_ID != StockUnit.StockUnit_ID)).FirstOrDefault();
            return objStockUnit != null ? true : false;
        }
    }
}
